package com.java.controller;

import com.java.dto.Result;
import com.java.entity.User;
import com.java.service.IUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 李启旋
 * @create 2023-03-10 11:20
 */
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {

    @Resource
    private IUserService userService;

    /**
     * 分页查询用户信息
     * @param page 第几页
     * @param size 页大小
     * @return 返回结果
     */
    @CrossOrigin
    @GetMapping("/list")
    public Result getUserList(@RequestParam(value = "query" , defaultValue= "") String key,
                              @RequestParam(value = "pageNum" , defaultValue= "1") Integer page,
                              @RequestParam(value = "pageSize" , defaultValue= "5") Integer size){
        return userService.getUserList(key,page,size);
    }

    /**
     * 新增用户
     * @param user 用户信息
     * @return 返回结果
     */
    @PostMapping
    public Result saveUser(@RequestBody User user){
        return userService.saveUser(user);
    }


    /**
     * 修改用户
     * @param user 用户信息
     * @return 返回结果
     */
    @PutMapping("/{id}")
    public Result updateUser(@PathVariable("id") Integer id,@RequestBody User user){
        return userService.updateUser(id,user);
    }


    /**
     * 删除用户
     * @param id 用户id
     * @return 返回结果
     */
    @DeleteMapping("/{id}")
    public Result deleteUserById(@PathVariable("id") Integer id){
        return userService.deleteUserById(id);
    }


    /**
     * 批量删除
     * @param list 删除的用户id
     * @return 返回结果
     */
    @CrossOrigin
    @DeleteMapping("/list")
    public Result deleteUserList(@RequestBody List<Integer> list){
        return userService.deleteUserList(list);
    }

    @GetMapping("/rollback")
    public Result rollback(){
        return userService.rollback();
    }
}
